package com.category.douyijia.services;

import java.util.ArrayList;
import java.util.List;

import com.category.douyijia.base.BaseService;
import com.category.douyijia.model.Commodity;
import com.category.douyijia.model.OrdMang;

/**
 * 创建的类继承基础类 ，实现增删改查功能
 * 基础类里利用的是键值对
 * @author jiangmengyang
 * @version v1.0
 * date time 2021年7月18日19:59:49
 */
public class CommodityService  extends BaseService<CommodityService,Commodity>{
     
	/**
	 * 创建一个空对象
	 * 修改数据时往里面传值
	 * 只能传一个值
	 */
	private Commodity commodity = null;
	/**
	 * 商品表里集合里面的实体类
	 */
	private Commodity commoditys  = null;
	/**
	 * 建立一个DAO模板
	 * 写增删改查功能时更简便
	 * 利用的是jfinal的方法
	 * 使数据更简便
	 */
	public static Commodity commodityDao = (Commodity)new Commodity().dao();
	/**
	    *将Commodity的对象添加到数据库
	    * @param commodity
	    * commodity为数据表的一个参数
	    *参数里有值包括列名
	    * @return
	    * 如果commodity 不为空添加数据库成功
	    * 如果commodity为空添加不了数据库
	    */
       public boolean put(Commodity commodity) {
	   if(commodity!=null && !(commodity.equals(""))) {
		   return commodity.save();
	   }else {
		   System.out.println("参数为空！");
		   return false;
	   }
}
	
       /**
        * 查询表里的全部数据
        * 建一个ArrayList包
        * @return
        *返回的是所有的信息
        *
        */
       public List<Commodity> findAll() {
       	return (ArrayList)commodityDao.findAll();
       }
	
       /**
        * 这是通过商品编号查询订单表里的数据
        * @param commId
        * 通过id查找商品表里的全部信息
        * @return
        * commId如果不为空的话就返回，
        * 商品表里的所查找的那些列
        * commId如果为空的话，
        * 返回的结果是一个空值
        */
       public Commodity findByCommId(String commId){
       	if(commId!=null && !(commId.equals(""))) {
       		return (Commodity) this.commodity.find(
       				"select "
       				+ "comm_id,comm_name,comm_repertory,comm_univalence,comm_picture,"
       				+ "comm_describe,comm_type_id "
       				+ "from Commodity "
       				+ "where comm_"
       				+ "id = ?",commId); 
       	}else {
       		return null;
       	}
       }
	
       /**
        * 通过商品名称查询，
        * 商品表里的所有数据
        * @param commName
        * @return
        * commName如果不为空的话就返回，
        * 商品表里的所查找的那些列
        * commName如果为空的话，
        * 返回的结果是一个空值
        */
       public List<Commodity> findByCommName(String  commName){
       	if(commName!=null && !(commName.equals(""))) {
       		return (ArrayList)commodity.find("select comm_id,comm_price, comm_repertory, "
       				+ "comm_univalence,comm_picture,"
       				+ " comm_describe,comm_type_id "
       				+ "from Commodity "
       				+ "where comm_name"
       				+ " = ?",commName);
       	}else {
       		return null;
       	}
       }
       /**
        * 通过商品类目编号查询，
        * 商品表里的所有数据
        * @param typeId
        * @return
        * typeId如果不为空的话就返回，
        * 商品表表里的所查找的那些列
        * typeId如果为空的话，
        * 返回的结果是一个空值
        */
       public Commodity findByTypeId(String typeId){
       	if(typeId!=null && !(typeId.equals(""))) {
       		return (Commodity) this.commodity.find(
       				"select "
       				+ "comm_id,comm_name,comm_repertory, comm_univalence,"
       				+ "comm_picture,comm_describe,comm_type_id "
       				+ "from Commodity"
       				+ " where comm_type_"
       				+ "id = ?",typeId); 
       	}else {
       		return null;
       	}
       }
       /**
       * 先查询再通过id删除数据库里的数据
       * 通过commId删除表里的一行数据
       * @param commId
       * @return
       * commId如果不为空的话结果为ture
       * commId如果为空的话结果为false
       */
       public boolean deleteByCommId(String  commId){
       	commodity = findByCommId(commId);
       	if (commodity != null) {
       		return commodity.dao().delete();
   		}
       	return false;
       }
       /**
        * 通过id更改到数据库
        * 建一个List包
        * 利用List这个可以是读者
        * 简而意之的看到原来的数据
        * 更有利于比较，简便
        * @param ordId
        *创建的一个参数 
        *保存商品对象
        * @return
        * 布尔类型
        * ordId不为空执行if中语句结果不为空的话显示ture
        * 结果为空的话显示false
        */
       public boolean updateByCommId(String commId) {
       if(commId!=null && !(commId.equals(""))) {
       	List<Commodity> commodityList = (List<Commodity>) commodityDao.findById(commId);
       	commoditys = (Commodity) commodityList;
       	return commoditys.dao()._setAttrs(commodity).update();
       }else{
       	return false;
       }
   }  
   
}
